Skip to content

Conversation

@barbacbd
Copy link
Contributor

aws: IOPS was not being set even when manually configured

** Removed the terraform parameter that was constantly set to 0 unless this
was an io1 instance.

** Left the bootstrap terraform value remain as it isn't causing any issues, but
we should be aware if we want to change the boostrap aws instance to anything
other than gp3 then we will change that too.

** Added static value tests for the volume type, volume size and iops
for AWS.

@openshift-ci openshift-ci bot added bugzilla/severity-medium Referenced Bugzilla bug's severity is medium for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. labels May 17, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented May 17, 2022

@barbacbd: This pull request references Bugzilla bug 2075459, which is valid. The bug has been moved to the POST state. The bug has been updated to refer to the pull request using the external bug tracker.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target release (4.11.0) matches configured target release for branch (4.11.0)
  • bug is in the state ASSIGNED, which is one of the valid states (NEW, ASSIGNED, ON_DEV, POST, POST)

No GitHub users were found matching the public email listed for the QA contact in Bugzilla (gpei@redhat.com), skipping review request.

Details

In response to this:

BUG 2075459: IOPS was not being set even when manually configured

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci openshift-ci bot requested review from jstuever and patrickdillon May 17, 2022 20:05
@barbacbd
Copy link
Contributor Author

The following link can be used to see where the static values came from.

@barbacbd barbacbd force-pushed the aws_iops_not_set branch 3 times, most recently from d56ac6a to 8a4a211 Compare May 19, 2022 13:20
@barbacbd barbacbd force-pushed the aws_iops_not_set branch from 8a4a211 to a923d77 Compare May 19, 2022 19:16
@barbacbd barbacbd requested review from r4f4 and rna-afk May 19, 2022 19:17
@@ -52,6 +50,40 @@ func ValidateMachinePool(platform *aws.Platform, p *aws.MachinePool, fldPath *fi
return allErrs
}

func validateVolumeSize(p *aws.MachinePool, fldPath *field.Path) field.ErrorList {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: this function is so small/simple that it could maybe be integrated into the caller if.

@r4f4
Copy link
Contributor

r4f4 commented May 19, 2022

/lgtm
I left some small comments but I'm nitpicking at this point.

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label May 19, 2022
@barbacbd barbacbd force-pushed the aws_iops_not_set branch from a923d77 to 0e507d1 Compare May 19, 2022 20:40
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label May 19, 2022
@r4f4
Copy link
Contributor

r4f4 commented May 19, 2022

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label May 19, 2022
Copy link
Contributor

@patrickdillon patrickdillon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@barbacbd I believe you mentioned that there were some docs inconsistencies that needed to be corrected. Can you work with @mjpytlak (or ben scott, whose github username I don't know) to make these changes?

@@ -78,8 +78,7 @@ func (a *MachinePool) Set(required *MachinePool) {

// EC2RootVolume defines the storage for an ec2 instance.
type EC2RootVolume struct {
// IOPS defines the amount of provisioned IOPS. This is only valid
// for type io1.
// IOPS defines the amount of provisioned IOPS. (KiB/s)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// IOPS defines the amount of provisioned IOPS. (KiB/s)
// IOPS defines the amount of provisioned IOPS. (KiB/s). IOPS may only be set for io1, io2, & gp3 volume types.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@barbacbd I'm available to work on this - what docs need revising?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://docs.openshift.com/container-platform/4.10/storage/dynamic-provisioning.html
This is the first instance of the issue (not sure if there are more). In the section "AWS Elastic Block Store (EBS) object definition".

In #2 GP3 is a missing value.
In #3 It says that iops is only allowed for io1. It is allowed for gp3 and io2. It is required for io1 and io2 to be a value greater than 0.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://docs.openshift.com/container-platform/4.10/storage/dynamic-provisioning.html This is the first instance of the issue (not sure if there are more). In the section "AWS Elastic Block Store (EBS) object definition".

In #2 GP3 is a missing value. In #3 It says that iops is only allowed for io1. It is allowed for gp3 and io2. It is required for io1 and io2 to be a value greater than 0.

@lpettyjo Brent has identified some docs inconsistencies in the storage area. Could you take a look? unsure if we should have a separate BZ created or how it should be handled. Thank you

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@barbacbd I'd like to get this comment updated, because I don't think there's anywhere in the codebase that documents this behavior.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(And after the comment is updated the explain code will need to be regenerated.)

@r4f4 r4f4 removed their assignment Jun 2, 2022
Comment on lines 74 to 75
case "gp3":
// Terraform will accept any value
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: even if Terraform accepts negative numbers, they don't make sense so we could enforce it here. It would be different than the io1, io2 case because 0 could potentially be valid...

** Removed the terraform parameter that was constantly set to 0 unless this
was an io1 instance.

** Left the bootstrap terraform value remain as it isn't causing any issues, but
we should be aware if we want to change the boostrap aws instance to anything
other than gp3 then we will change that too.

** Added static value tests for the volume type, volume size and iops
for AWS.

aws: Static type checks fixed

** Adjusted the static type checks after reviewing the terraform pages.
gp3 does not require any value for the iops, default will be set to 3000
io1 and io2 require a value (cannot be <0)
sc1, st1, and gp2 require no value to be set (must be 0 iops)

aws: remove used test data

** Reverting/Removing unused test data for the types/machines

aws: Altered comments for machine

** Comments that are used to generate the docs were changed and
the new comments and generated docs are added.

aws: Fix error formatting

** Fixed capitalization and formatting in AWS types errors.

** Formatting Error messages.

aws: IOPS change to GP3 volume types

** Updated comments/explain regenerated
** Added check for >= 0 IOPS for GP3, even though terraform will accept
any value, we can go ahead and check it.
@barbacbd barbacbd force-pushed the aws_iops_not_set branch from 0e507d1 to d4a48a2 Compare June 3, 2022 12:20
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Jun 3, 2022
@barbacbd barbacbd requested a review from patrickdillon June 3, 2022 12:22
@r4f4
Copy link
Contributor

r4f4 commented Jun 3, 2022

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jun 3, 2022
@patrickdillon
Copy link
Contributor

/approve

@patrickdillon
Copy link
Contributor

/retest

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jun 3, 2022

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: patrickdillon

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 3, 2022
@openshift-ci-robot
Copy link
Contributor

/retest-required

Remaining retests: 2 against base HEAD 60ad1fe and 8 for PR HEAD d4a48a2 in total

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jun 3, 2022

@barbacbd: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-libvirt d4a48a2 link false /test e2e-libvirt
ci/prow/e2e-azure d4a48a2 link false /test e2e-azure
ci/prow/e2e-crc d4a48a2 link false /test e2e-crc
ci/prow/e2e-ibmcloud d4a48a2 link false /test e2e-ibmcloud
ci/prow/e2e-openstack d4a48a2 link false /test e2e-openstack
ci/prow/e2e-aws-single-node d4a48a2 link false /test e2e-aws-single-node
ci/prow/e2e-metal-ipi d4a48a2 link false /test e2e-metal-ipi
ci/prow/okd-e2e-aws d4a48a2 link false /test okd-e2e-aws

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@openshift-merge-robot openshift-merge-robot merged commit 81fd6e4 into openshift:master Jun 3, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jun 3, 2022

@barbacbd: All pull requests linked via external trackers have merged:

Bugzilla bug 2075459 has been moved to the MODIFIED state.

Details

In response to this:

BUG 2075459: IOPS was not being set even when manually configured

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

abutcher added a commit to abutcher/hive that referenced this pull request Jun 22, 2022
openshift/installer#5925 introduces checks
which disallow our previous default of a gp2 volumeType with 100 IOPS
as it was an incorrect configuration. From the linked change, IOPS may
now only be set for io1, io2, & gp3 volume types.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. bugzilla/severity-medium Referenced Bugzilla bug's severity is medium for the branch this PR is targeting. bugzilla/valid-bug Indicates that a referenced Bugzilla bug is valid for the branch this PR is targeting. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants